package com.stt.videoprocess.design.processor.impl;

import com.stt.videoprocess.design.model.VideoTask;
import com.stt.videoprocess.design.processor.VideoProcessor;

/**
 * 串行处理器实现类（组合模式）
 * 按顺序执行所有子处理器
 */
public class SerialProcessor extends CompositeProcessor {
    /**
     * 处理视频任务的方法
     * 该方法会将视频任务分配给所有可用的视频处理器进行处理
     *
     * @param task 视频任务对象，包含需要处理的视频信息
     * @throws Exception 如果在处理视频任务时发生错误，则抛出异常
     */
    @Override
    public void process(VideoTask task) throws Exception {
        for (VideoProcessor processor : processors) {
            processor.process(task);
        }
    }

    /**
     * 获取处理器名称的方法
     *
     * @return 处理器名称，这里返回"SerialProcessor"表示串行处理器
     */
    @Override
    public String getProcessorName() {
        return "SerialProcessor";
    }
}